package com.logic.landseaserver.service;

import com.logic.landseaserver.common.exception.LandseaException;
import com.logic.landseaserver.domain.BillDetail;
import com.logic.landseaserver.domain.Contract;
import com.logic.landseaserver.domain.PreOffrentBill;
import com.logic.landseaserver.domain.PreOffrentDetailBill;

import java.util.List;

/**
 * Created by Junny on 2017/8/23.
 */
public interface IOffrentPreBill {
    /**
     * 
     * [简要描述]：</br>
     * [详细描述]：返回preBillId</br>
     * [作者]：Aaron(2017-12-14)</br>
     *
     * @param contract
     * @param isNeedProcessAccount 是否要结算余额
     * @throws LandseaException
     *
     */
    Integer addPreBill(Contract contract, boolean isNeedProcessAccount)throws LandseaException;

    PreOffrentBill queryPreBillByContractId(Integer contractId)throws LandseaException;

    List<PreOffrentDetailBill> queryPreBillDetailByPreId(Integer preBillId,String billType)throws LandseaException;

    List<BillDetail> queryLastPayBill(int contractId)throws LandseaException;

    boolean cancelPreBill(Integer contractId);

    void deletePreBillByContractId(Integer contractId);

}
